import { logPost } from '@/api/login'
// import jsCookie from 'js-cookie'
import { getQueryParams } from '@/utils/utils.js'
import small from '@/smallapp/small'

export function getViewData(route,options) {
  let viewType = ''
  let viewId = ''
  if (route == 'pages/shopIndex/index') {
    viewType = 1
  } else if (route == 'goods/pages/itemList/index') {
    viewType = 2
  } else if (route == 'user/pages/userMember/index') {
    viewType = 3
  } else if (route == 'goods/pages/itemDetail/index' || route == 'goods/pages/itemGroup/index') {
    viewType = 4
    if(options && options.search){
      const searchStr=getQueryParams(decodeURIComponent(options.search))
      viewId = searchStr.item_id || searchStr.detailId
    }
  }
  return {
    viewType: viewType,
    viewId: viewId
  }
}

export function getSdkOption(type){
  const pageObj = getCurrentPages();
  const { route,options } = pageObj[pageObj.length - 1];
  const eventsArr = []
  const toObj = getViewData(route,options)
  const sceneTemp=small.wxCache('scene') || 0
  let sourceType=0

  // 最近使用与我的小程序：1（1001、1089、1090）；搜索：2（1005、1006、1027、1042、1054、1106）系统桌面：（1023）微信内部其他：4（）会话：5（1007、1008、1074、1082、1088、1157）长按识别二维码：6（1012、1013、1031、1032）浮窗：7（1131、1187）模板消息：8（1014、1043）

  if(sceneTemp==1001||sceneTemp==1089||sceneTemp==1090){
    sourceType=1
  }else if(sceneTemp==1005||sceneTemp==1006||sceneTemp==1027||sceneTemp==1042||sceneTemp==1054||sceneTemp==1106){
    sourceType=2
  }else if(sceneTemp==1023){
    sourceType=3
  }else if(sceneTemp==1007||sceneTemp==1008||sceneTemp==1074||sceneTemp==1082||sceneTemp==1088||sceneTemp==1157){
    sourceType=5
  }else if(sceneTemp==1012||sceneTemp==1013||sceneTemp==1031||sceneTemp==1032){
    sourceType=6
  }else if(sceneTemp==1131||sceneTemp==1187){
    sourceType=7
  }else if(sceneTemp==1014 || sceneTemp==1043){
    sourceType=8
  }else{
    sourceType=4
  }
  let rurl = ''
  if (type == 'enterpage') {
    // 进入页面时获取上一个路径
    rurl = small.wxCache('rurl') && small.wxCache('rurl')!= route? small.wxCache('rurl') : ''
  } else if(type == 'leavepage'){
    // 离开页面时存入路径作为下一次的进入路径
    small.wxCache('rurl',route)
  }
  eventsArr.push({
    ei: type,
    // 页面title
    // en: to.meta.title,
    en: '',
    rurl: rurl,
    durl: route,
    view_type: toObj.viewType,
    view_id: toObj.viewId,
    source:2, //来源 1 h5 2 小程序
    source_type:sourceType  //小程序场景值
  })
  const sdkOption = {
    user: {
      userid: small.wxCache('global_login_info') ? small.wxCache('global_login_info').uid : '0',
      sid: small.globalData.shopId
    },
    events: eventsArr
  }
  return sdkOption
}

export function guid4() {
  return 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    const r = Math.random() * 16 | 0
    const v = c == 'x' ? r : (r & 0x3 | 0x8)
    return v.toString(16)
  })
}

/**
     * uuid 获得
     * @returns {{uuid: string, ftime: string}}
     */
export function getUuid() {
  // let uuid = jsCookie.get('qb_log_uuid')
  // let ftime = jsCookie.get('qb_log_ftime')

  let uuid = small.wxCache('qb_log_uuid')
  let ftime = small.wxCache('qb_log_ftime')
  const time = parseInt(Date.now() / 1000)
  // 不超过36500天
  if (uuid && ftime && (time-ftime<36500*24*60*60*1000)) {
    return {
      uuid: uuid,
      ftime: ftime
    }
  }
  // 重新生成 uuid 和 ftime
  uuid = guid4()
  ftime = parseInt(Date.now() / 1000)
  
  // 设置缓存
  small.wxCache('qb_log_uuid',uuid)
  small.wxCache('qb_log_ftime',ftime)
  return {
    uuid: uuid,
    ftime: ftime
  }
}
export function handleLogPost(type,rurl) {
  if(small.wxCache('is_need_log')!=1){
    return false
  }
  const option=getSdkOption(type,rurl)
  const uuObj = getUuid()
  // 获取系统信息
  let screenWidth=0
  let screenHeight=0
  let system=''
  let version=''
  wx.getSystemInfo({
    success: function (res) {
      screenWidth=res.screenWidth
      screenHeight=res.screenHeight
      system=res.system
      version=res.version
    }
  });
  const data = {
    user: {
      uuid: uuObj.uuid,
      ftime: uuObj.ftime,
      sid: '',
      userid: ''
    },
    // 浏览器信息
    env: {
      os: system, // 操作系统，如：Windows 10
      bn: 'Applets', // 浏览器，如：Firefox
      bv: version, // 浏览器版本，如：86.0
      bd: system+' Applets '+version, // 浏览器信息，如：Firefox 86.0 on Windows 10 64-bit
      sh: screenHeight, // 界面高
      sw: screenWidth // 界面宽
    },
    events: [
      {
        flag: '', // 标识
        et: '', // 行为，如：display展示
        ei: '', // 事件，如：enterpage进入页面
        en: '', // 页面title
        ts: '',
        durl: '', // 访问地址
        st: '',
        rurl: '', // 跳转前地址
        template_id: '', // 装修模板id
        view_type: '', // 浏览对象：1首页，2商品，3会员，4商品详情
        view_id: '' // 浏览对象ID：如商品id，bannerID
      }
    ]
  }
  const params = Object.assign(data, option)
  params.user.uuid = uuObj.uuid
  params.user.ftime = uuObj.ftime
  logPost(params).then((res) => {
    // // console.log('sdk3333')
    // // console.log(res)
  })
}

